/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pe.gob.mtc.dgac.licencias.controller;

import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import pe.gov.mtc.dgac.licencias.bean.AuditoriaTO;
import pe.gov.mtc.dgac.licencias.service.AuditoriaService;
import pe.gov.mtc.dgac.licencias.util.Utiles;

/**
 *
 * @author elvis
 */
@Controller
@Scope("session")
public class AuditoriaController {

    private static final Logger logger = Logger.getLogger(AuditoriaController.class);
    
    @Autowired
    private AuditoriaService auditoriaService;
    
    @RequestMapping("/calidad/lauditorias.htm")
    public String lauditorias(HttpServletRequest request,ModelMap model) {
        model.put("lauditorias", auditoriaService.listarAuditorias(new AuditoriaTO()));
        model.put("bauditoria", new AuditoriaTO());
        model.put("lcomboTipoAuditoria", auditoriaService.listatipoAuditoria());
        System.out.println("calidad/lauditorias");
        return "calidad/lauditorias";
    }
    
    @RequestMapping("/calidad/bauditorias.htm")
    public String bauditorias(@Valid AuditoriaTO bauditoria, BindingResult result,HttpServletRequest request,ModelMap model) {
        System.out.println("calidad/bauditorias");
        model.put("lauditorias", auditoriaService.listarAuditorias(bauditoria));
        model.put("bauditoria", bauditoria);
        model.put("lcomboTipoAuditoria", auditoriaService.listatipoAuditoria());
        return "calidad/lauditorias";
    }
    
    @RequestMapping("/calidad/nauditoria.htm")
    public String nauditoria(HttpServletRequest request,ModelMap model) {
        model.put("nauditoria", new AuditoriaTO());
        model.put("lcomboTipoAuditoria", auditoriaService.listatipoAuditoria());
        model.put("lcomboAuditAptos", auditoriaService.listarAuditoresAptos());
        System.out.println("calidad/nauditoria");
        return "calidad/nauditoria";
    }
   
    @RequestMapping("/calidad/editAuditoria.htm")
    public String editAuditoria(@RequestParam("codigo") int id,HttpServletRequest request,ModelMap model) {
        System.out.println("calidad/mauditoria");
        model.put("lcomboTipoAuditoria", auditoriaService.listatipoAuditoria());
        model.put("nauditoria", auditoriaService.obtenerAuditoria(id)); 
        model.put("lcomboAuditAptos", auditoriaService.listarAuditoresAptos());
        return "calidad/nauditoria";
    }
     
    @RequestMapping("/calidad/rauditoria.htm")
    public String rauditoria(@Valid AuditoriaTO nauditoria, BindingResult result,HttpServletRequest request,ModelMap model) {
        try {
            logger.debug("calidad/rauditoria");
            nauditoria.setFecInicEjec(Utiles.stringToDate(request.getParameter("fecInicEjec"), "dd/MM/yyyy"));
            nauditoria.setFecTermEjec(Utiles.stringToDate(request.getParameter("fecTermEjec"), "dd/MM/yyyy"));
            nauditoria.setFecInicProgr(Utiles.stringToDate(request.getParameter("fecInicProgr"), "dd/MM/yyyy"));
            nauditoria.setFecTermProgr(Utiles.stringToDate(request.getParameter("fecTermProgr"), "dd/MM/yyyy"));
            auditoriaService.registrarAuditoria(nauditoria);
            return lauditorias(request, model);    
        } catch (Exception e) {
            model.put("msgError", e.getMessage());
            nauditoria.setCodAuditoria(null);
            model.put("nauditoria", nauditoria);
            model.put("lcomboTipoAuditoria", auditoriaService.listatipoAuditoria());
            model.put("lcomboAuditAptos", auditoriaService.listarAuditoresAptos());
            return "calidad/nauditoria";
        }
    }
    
    @RequestMapping("/calidad/verAuditoria.htm")
    public String verAuditoria(@RequestParam("codigo") int id,HttpServletRequest request,ModelMap model) {
        System.out.println("calidad/dauditoria");
        model.put("dauditoria",auditoriaService.obtenerAuditoria(id));
        return "calidad/dauditoria";
    }
    
    
   @RequestMapping("/calidad/delAuditoria.htm")
    public String delAuditoria(@RequestParam("codigo") int id,HttpServletRequest request,ModelMap model) {
        auditoriaService.eliminarauditoria(id);
        return lauditorias(request, model);
    }
}
